Spring:DAO

Spring Data JPA un framework de Spring qui pemert de gérer les opérations dans la base de données

1.Ajouter les dépédances dans le fichier pom.xml


<!--spring-data-jpa :un module du framework Spring qui permet de
-gérer la couche d'accés à la base de données
-contenant un ensemble d'interface et classes qui facilitent la mise en ouvre
des opération dans la base de données :
-insert, update, delete ...-->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>

<!-- C'est l'ORM (objet relational mapping) standars de Java pour le stockage , l'accès et la gestion des objets Java
dans une base de données relationnelle permet de :
Définir la structure de la table correspondant une Classe-->
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<!-- un pilote qui implémente l'API Java Database Connectivity (JDBC)
MySQL fournit une connectivité à une base de données MYSQL
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>

<!-- un outils qui permet de créer une connection à une base de relationnelle en fournissant
username ,
password
url to datasource-->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- Hibernate : ibernate est un outil de mappage relationnel objet ( ORM )
Hibernate mappe les classes Java aux tables de base de données et des types de données Java aux types de données SQL
-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.5.Final</version>
</dependency>
<!--
EntityManager est utilisé pour accéder à une base de données
Il est utilisé pour:
Gérer les entités(les tables)
exécuter des requets SQ
-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.5.Final</version>
</dependency>


2.Configurer la connexion à la base de données :spring-servlet.xml



<!--1. Créer une connexion à la base de données ventesproduit-->
<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
<beans:property name="url"
value="jdbc:mysql://localhost:8111/ventesproduit" />
<beans:property name="username" value="root" />
<beans:property name="password" value="" />
</beans:bean >
<!--2.Configuration de spring-jpa -->
<beans:bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!--dataSource Crée en haut -1- -->
<beans:property name="dataSource" ref="dataSource" />
<!--com.ecomerce.models: le package contenant les entités (classe =>Table)-->
<beans:property name="packagesToScan" value="com.ecomerce.models" />
<beans:property name="jpaVendorAdapter">
<beans:bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<beans:property name="generateDdl" value="true" />
<beans:property name="showSql" value="true" />
<!-- le type des requetes SQL qui seront générer par hibernate pour Mysql on a
org.hibernate.dialect.MySQL5Dialect -->
<beans:property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/>
<beans:property name="database" value="MYSQL"/>
</beans:bean>
</beans:property>
<!--create:permet de recréer les tables if exists
drop tabel if exists puis Create table ...
aprés création de toutes les tables il faut la changer à update-->
<beans:property name="jpaProperties">
<beans:props>
<beans:prop key="hibernate.hbm2ddl.auto">create</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
<!--Gestion des transaction avec spring -->
<beans:bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<beans:property name="entityManagerFactory" ref="entityManagerFactory" />
</beans:bean>
<!-- com.ecomerce.DAO:le package contenant les interfaces de type repository:
JpaRepository ou CrudRepository-->
<jpa:repositories base-package="com.ecomerce.DAO" />









Cours et TPs